package com.yinhai.ta404.component.org.sysmg.resource.service.read;

import com.alibaba.fastjson.JSONArray;
import com.yinhai.ta404.component.org.core.vo.TaResourceVo;
import com.yinhai.ta404.component.org.sysmg.resource.entity.TaResourcePo;
import com.yinhai.ta404.component.org.sysmg.resource.service.ResourceService;
import com.yinhai.ta404.component.org.sysmg.resource.vo.TaResourceParamVo;
import com.yinhai.ta404.component.org.sysmg.system.vo.TaAccessSystemVo;
import com.yinhai.ta404.core.security.vo.BaseResourceVo;
import com.yinhai.ta404.core.security.vo.UserAccountVo;

import java.util.List;


public interface ResourceReadService extends ResourceService {

    TaResourceVo queryResource(String resourceId);


    List<TaResourceVo> queryAllResources();


    @Deprecated
    List<TaResourceVo> queryEffectiveResources(String userId);


    List<TaResourceVo> queryResourceByUserId(UserAccountVo userAccountVo);


    List<TaResourceVo> queryChildResources(String resourceId);


    List<TaResourceVo> queryNextLevelResourceWithSelf(String resourceId);


    List<TaResourceVo> queryResourceByUrl(String url);


    List<TaResourceVo> queryResourceByParam(TaResourceParamVo resourceParamVo);


    TaResourceVo toEditOrAdd(String resourceId, String operationType);


    Object exportResource();


    JSONArray queryResourceTypeLimit(String resourceId, String operationType);


    List<TaAccessSystemVo> queryAllAccessSystem();


    Long queryResourceBySysId(String sysId);


    List<BaseResourceVo> queryResourceNoLogin();


    List<BaseResourceVo> queryResourceLogin();


    boolean isAloneUiAuthorityPolicy(String resourceId);


    List<TaResourcePo> queryByUserIdWithField01(String userId, String field01);



    List<TaResourcePo> queryBtn(String field01);


    TaResourcePo queryMenuByMenuId(String resourceId);

}
